1. Field of the Invention
The present invention relates to fault tolerant data processing structures and procedures. More particularly, the present invention relates to digital data handling structures and methods which can dynamically overcome errors resulting from various sources during transmission of digital data between computer oriented complexes. While not necessarily so limited, the present invention is especially useful in enhancing the reliability of digital data transmissions between host computers and caching disk array controller systems.
2. Description of the Related Art
Caching controllers that interface with host computers or the like for directing data exchanges with large arrays of magnetic data storing disks, or other storage media have developed for providing a storage medium for large quantities of digital information. These controllers respond to read and write commands from a remote computer system to receive, and/or deliver data over interconnecting busses.
Preferably, the caching controller should function so that it minimizes demands on the host system, while including the ability to recover wherever possible from errors from single points of failure. A single point of failure can occur from loss of a component or element in the transmission chain, spurious interfering signals, or any of a variety of sources. System configurations and operations capable of dynamically overcoming single points of failure are sometimes referred to as fault tolerant systems.
Redundant storage devices and controlling subsystems have provided fault tolerant operations for data transmission and storage purposes. Such controllers can provide a "fast write" function wherein data intended for writing onto a disk medium is received in a manner that allows the receiving system to confidently acknowledge to the transmitting host that the data was properly received even before the received data is actually recorded in a magnetic disk.
The received data is redundantly stored in a high speed temporary memory where it is checked for accuracy, and corrected for errors reflecting single point failures. Dual recording and comparison steps, along with various other known techniques, such as use of parity checks and applications of error detecting and correcting codes, are employed for this purpose. The aforementioned related patent applications describe such redundant fault tolerant systems aria operations in a disk array controller environment.
Thus, fault tolerant caching disk array controllers are subject to several stringent requirements. First, no single component failure should cause loss of data or corruption of the data transferred. This mandates a certain redundancy and ability to "fail over" so as to transfer the function and/or data to independent redundant components.
Further, the controller must not require the host computer or central processor to wait for completion of a read or write operation to a disk. This means the controller must buffer write date into a protected fast memory, and must service most read data from fast memory. This requires the controller to have the ability to accept or provide data to the host computer at the data rate of the host computer connection, rather than at the rate the disk drives transfer data.
Finally, the user should have the capability of configuring cache performance by cost or other system constraints by adding, or removing, fast memory on the controller. This is predominantly a matter of resource allocation, as well as configuring the controller to match the performance and cost requirements of the system user.